/**
 * @author 侯非
 * @date 2009-04-11
 * @class JobChangeGridPanel
 * @extends Ext.grid.GridPanel
 * @description 员工调动表格
 */

JobChangeGridPanel = Ext.extend(Ext.grid.GridPanel, {
	// 唯一id
	myid : "default",
	// 审核员工调动信息窗体
	checkWin : null,
	/**
	 * @description 构造方法
	 * 
	 * @param {}
	 *            _config 构造参数集
	 */
	constructor : function(_config) {
		// 为构造参数默认值
		if (_config == null) {
			_config = {};
		}
		// 将构造参数附加给当前对象
		Ext.apply(this, _config);
		// 审核员工调动信息窗体
		this.checkWin = new CheckJobChangeWindow();

		/**
		 * 数据存储器
		 */
		this["store"] = new Ext.data.JsonStore({
					url : "jobChange.do?operator=showAllJobChange",
					root : "rows",
					totalProperty : "totalCount",
					fields : ["pfName", "pfFileId", "jcOldCompany", "jcOldJob",
							"jcAddDate", "jcState", "personfile.pfIdCard",
							"jcNewCompany", "jcCause", "jcMemo", "jcOldBranch",
							"jcNewBranch", "jcOldCountMoney",
							"jcNewCountMoney", "jcOldMoneyName",
							"jcNewMoneyName", "jcOldMoneyId", "jcNewMoneyId",
							"jcNewJob", "jcId"]
				});

		/**
		 * 拷贝父类的构造
		 */
		JobChangeGridPanel.superclass.constructor.call(this, {
			id : this.myid,
			stripeRows : true, // 交替行效果
			viewConfig : {
				forceFit : true
			},
			// 列的定义
			columns : [new Ext.grid.CheckboxSelectionModel({
								header : ""
							}), {
						header : "员工姓名",
						dataIndex : "pfName",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "员工档案号",
						dataIndex : "pfFileId",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "员工身份证号",
						dataIndex : "personfile.pfIdCard",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "原公司名",
						dataIndex : "jcOldCompany",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "新公司名",
						dataIndex : "jcNewCompany",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "登记时间",
						dataIndex : "jcAddDate",
						renderer : Ext.houfei.utils.GridPanelUtils.cellDateRenderer
					}, {
						header : "调动原因",
						dataIndex : "jcCause",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "备注",
						dataIndex : "jcMemo",
						renderer : Ext.houfei.utils.GridPanelUtils.cellStandardRenderer
					}, {
						header : "审核状态",
						dataIndex : "jcState",
						renderer : function(_v) {
							if (_v == "通过审核") {
								return "<img src='images/icons/drop-yes.gif' ext:qtip='通过审核' />";
							} else {
								return "<img src='images/icons/drop-no.gif' ext:qtip='未审核' />";
							}
						}
					}],
			// 填充加载时间
			loadMask : {
				msg : "正在加载数据,请稍候......"
			},
			// 选择模式
			selModel : new Ext.grid.RowSelectionModel({
						// 单行选择模式
						singleSelect : true
					}),
			tbar : new Ext.Toolbar({
						style : "padding:5px;",
						items : ["人员姓名：", {
									xtype : "textfield"
								}, "-", "登记时间：", {
									xtype : "datefield",
									format : "Y年m月d日",
									width : 120,
									readOnly : true
								}, "-", {
									text : "查询",
									iconCls : "houfei-searchIcon",
									handler : this.onSearch,
									scope : this
								}, "-", {
									text : "清空查询条件",
									iconCls : "houfei-closeCurrentTab",
									handler : this.onClearCondition,
									scope : this
								}]
					}),
			bbar : new Ext.PagingToolbar({
				store : this["store"], // 数据存储器
				pageSize : 17, // 页大小
				displayMsg : "共<font color=\"green\"> {2} </font>条记录,当前页记录索引<font color=\"green\"> {0} - {1}</font>&nbsp;&nbsp;&nbsp;",
				displayInfo : true,
				items : ["-", {
							text : " 审核 ",
							iconCls : "houfei-checkIcon",
							handler : this.onCheckJobChange,
							scope : this
						}]
			})

		});
		/**
		 * 加载数据
		 */
		this.getStore().load({
					params : {
						start : 0,
						limit : 17
					}
				});

		// 监听checkWin的当前事件(onCheckSuccess)
		this.checkWin.on("onCheckSuccess", this.onCheckSuccess, this);
	},

	/**
	 * checkWin的当前事件(onCheckSuccess)
	 */
	onCheckSuccess : function() {
		this.getStore().reload();
	},

	/**
	 * 审核
	 */
	onCheckJobChange : function() {
		// 获取选择模板
		var _cm = this.getSelectionModel();
		// 如果用户选择了一条记录
		if (_cm.getCount() > 0) {
			this.checkWin.myForm.getForm().reset();
			// 显示差窗体
			this.checkWin.show();

			// 获取用户当前选择行的Record
			var _record = _cm.getSelected();
			// alert(Ext.util.JSON.encode(_record.data));
			this.checkWin.myForm.getForm().loadRecord(_record);
		} else {
			Ext.Msg.show({
						title : "系统提示",
						msg : "请您选择一条您要审核的信息!",
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.INFO
					});
		}
	},

	/**
	 * 清空查询条件按钮单击事件
	 */
	onClearCondition : function() {
		// 获取top工具条
		var _tbar = this.getTopToolbar();
		// 获取text框的值
		var _name = _tbar.items.get(1).setValue("");
		// 获取dateField框的值(Date类型)
		var _dtxt = _tbar.items.get(4).setValue("");
	},

	/**
	 * 查询按钮单击事件
	 */
	onSearch : function() {
		// 获取top工具条
		var _tbar = this.getTopToolbar();
		// 获取text框的值
		var _name = _tbar.items.get(1).getValue();
		// 获取dateField框的值(Date类型)
		var _dtxt = _tbar.items.get(4).getValue();
		var _sdate = new Date(_dtxt);
		// 获取日期(String)
		var _date = null;
		if (_dtxt != null && _dtxt != "") {
			_date = _sdate.format("Y-m-d");
		}
		/**
		 * 给当前表格的数据源添加请求参数
		 */
		this.getStore().baseParams = {
			addDate : _date,
			pfName : _name
		};
		/**
		 * 重新加载数据
		 */
		this.getStore().load({
					params : {
						start : 0,
						limit : 17
					}
				});
	}
});